package com.smart.common.config.satoken;


import cn.dev33.satoken.stp.StpInterface;
import cn.hutool.core.util.ObjectUtil;
import com.smart.common.entities.domain.AclMeta;
import com.smart.utils.AclUtils;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 添加用户权限集合
 *
 * @author Xiaxuqiu
 * @date 2021-11-26
 **/
@Component
@Log4j2
public class SaTokenHandler implements StpInterface {

    /**
     * 返回一个账号所拥有的权限码集合
     */
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        AclMeta aclMeta = AclUtils.getAclMeta();
        if (ObjectUtil.isNotEmpty(aclMeta)) {
            return List.copyOf(aclMeta.getApiExprList());

        }
        return null;

    }

    /**
     * 按照角色鉴权 由于本系统没有使用角色鉴权 直接返回一个NULL
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        AclMeta aclMeta = AclUtils.getAclMeta();
        if (ObjectUtil.isNotEmpty(aclMeta)) {
            return List.copyOf(aclMeta.getRoleCodes());


        }
        return null;
    }
}
